home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK2.toast / Development Kits (Disc 2) / OpenDoc / Developer Documentation / Human Interface / Human Interface Q & A / HI Q&A #5 < prev    next >
Encoding:
Text File  |  1996-04-26  |  12.1 KB  |  239 lines  |  [ttro/ttxt]

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  Q&A #5
  17. Frequently Asked Questions from the WWDC
  18.  
  19.  
  20. By the Apple Computer OpenDoc Human Interface Team
  21.  
  22. As published in the July 1995 Apple Directions
  23.  
  24. Here's a collection of questions the OpenDoc Human Interface team was asked
  25. during the recent Worldwide Developers Conference (WWDC). We hope you'll
  26. find our answers helpful.
  27.  
  28. Q: Where can I find a copy of the OpenDoc Human Interface Guidelines?
  29.  
  30. A: They are on the 1995 WWDC Technologies CD that was distributed at the
  31. conference. To find the guidelines file, use the path 1995 WWDC
  32. Technologies:OpenDoc:Documentation:Human Interface:OpenDoc HI Guidelines.
  33. (To read the file, you'll need to install Adobe(TM) Acrobat Reader, which
  34. you can find on AppleLink.) We welcome your comments on these guidelines.
  35.  
  36. These guidelines are up-to-date, with one exception: The section "Feedback
  37. for Cropped Parts" on pages 101-103 should have been deleted.
  38.  
  39. Q: Why doesn't OpenDoc display the "not" symbol (circle with a slash) when a
  40. user is dragging objects over invalid drop targets? Displaying this symbol
  41. would be very helpful.
  42.  
  43. A: According to the Macintosh Drag & Drop Guidelines, feedback shows users
  44. where they may drop, rather than where they may not drop. This is consistent
  45. with our general philosophy of using visual feedback to show users what
  46. actions are available at any given moment. However, other platforms (for
  47. example, Windows and OS/2) use an "invalid drop" feedback mechanism such as
  48. the one you describe. On those platforms, OpenDoc follows those user
  49. interface guidelines.
  50.  
  51. Q: Why can't I select the root part in a document? I want to apply some
  52. operations to the entire document.
  53.  
  54. A: Selection applies to content. At the root level of an OpenDoc document,
  55. users can select all of the content, but they can't select the container of
  56. the content--the document itself. To do that, they have to go to the Finder.
  57. (To help you understand what the root of an OpenDoc document is, consider a
  58. text document that has a spreadsheet part embedded in it. In this case, the
  59. document's root part is a text part.)
  60.  
  61. Today, if users wish to modify the entire document, they can do so only to
  62. the extent that the application provides document-wide commands. OpenDoc is
  63. just the same, in that the ability to modify an entire OpenDoc document must
  64. rest in the part editor for the root part of that document.
  65.  
  66. But OpenDoc is different from today's applications in that embedded parts
  67. can be turned into separate documents, and separate documents can be
  68. embedded as parts inside a container document. This is a powerful way of
  69. composing content, but it means that your parts may have somewhat different
  70. behaviors when they are embedded parts than when they are the root part.
  71.  
  72. In particular, when your part is a root part, you may provide additional
  73. Document menu commands or capabilities such as window magnification. This is
  74. how you must implement document-wide commands, since users cannot select the
  75. entire document. In sum, when a part is the root part, it may provide a
  76. different set of capabilities or commands than when it is an embedded part.
  77.  
  78. Some commands, such as Save or Document Info, apply only to the document as
  79. a whole; and some operations you definitely would not want to operate on the
  80. root part, such as Cut. Because you cannot select the root part, this
  81. situation cannot arise. Some Document commands, such as Print and Close,
  82. apply to the active window. Save a Copy applies to the active draft when a
  83. previous draft is frontmost. [Editor's note: A draft is a "snapshot" or a
  84. saved state of the document at a given moment. OpenDoc allows the user to
  85. view any draft of a document.]
  86.  
  87. Q: How does OpenDoc handle saving the content of all of the parts in a
  88. document when one of the part editors that is being used in the document
  89. crashes? For instance, suppose I have two different types of content (which
  90. use two different editors) in a document. I edit the first of these; then,
  91. while I'm editing the second part, the first editor crashes. What happens to
  92. the changes that I put into the first part? Are they saved or lost?
  93.  
  94. A: The behavior is the same as it is in today's application environment--if
  95. there's a crash, all unsaved changes are lost. Parts do not save
  96. independently; all of the parts in the document are saved in one file at
  97. once.
  98.  
  99. Q: How does keyboard navigation work in a compound document? What Command
  100. key equivalents are used, and in what order do they navigate the hierarchy
  101. of embedded parts within a document? This is an issue for users who prefer
  102. to (or absolutely must) use the keyboard to navigate through their
  103. documents.
  104.  
  105. A: This is a complex issue in OpenDoc because there is more than one sort of
  106. navigation. Navigation means moving the insertion point or selection within
  107. a single part, between a part and its container, or between a part and an
  108. embedded part. The arrow keys are typically used to move the insertion point
  109. within a single kind of content, as in today's applications.
  110.  
  111. We haven't yet defined how to move between a container and one of its
  112. embedded parts. We are leaning toward using Command- Option-Up Arrow and
  113. Command-Option-Down Arrow for moving the insertion point up and down the
  114. part hierarchy. That is, when an embedded part is active and the user types
  115. Command-Option-Up Arrow, the parent part becomes active and the previously
  116. active part is selected. Likewise, when a part is selected,
  117. Command-Option-Down Arrow activates that part and places an insertion point
  118. as appropriate to that part. Tab might also be used to move among embedded
  119. parts. (Note, however, that there is some interaction between Tab and arrow
  120. key combinations in this context that we haven't yet defined.) We would like
  121. to know whether this may present a problem for your part.
  122.  
  123. Q: The current selection model is annoying when you are doing things like
  124. page layout. How about if the resize handles were visible at the same time
  125. as the active frame border?
  126.  
  127. A: In today's applications, you must first select an object and then choose
  128. actions (such as Cut, Copy, and Resize) to perform on the object. That
  129. interaction standard is preserved in OpenDoc, and is appropriate because
  130. most tasks involve editing content, rather than resizing and moving entire
  131. parts. When you are manipulating entire parts (as in page layout), the page
  132. layout part may provide a "layout mode." As we've said before, modes should
  133. be accessed through tools or menu commands. Additionally, you should include
  134. some visual indication that the user is in a given mode.
  135.  
  136. Q: Why isn't there direct manipulation for scaling embedded parts? How about
  137. using "scaling" handles that are distinct from "cropping" handles? This
  138. might help users figure out what will happen if they move one of the
  139. handles.
  140.  
  141. A: The short answer is: Using different handles for different behaviors is a
  142. great idea. However, we recommend clearly delineating multiple functions.
  143. Therefore, we recommend not mixing different kinds of handles on a frame.
  144. Instead, let users access the different functions as separate modes, through
  145. commands or tools.
  146.  
  147. You may not be aware that both an embedded part and its container may cause
  148. the contents of a frame to be scaled (or rotated, skewed, and so on):
  149.  
  150. If an embedded part's frame is resized, its editor must decide whether to
  151. crop or scale within the resulting frame shape. We strongly suggest that you
  152. use the cropping behavior as a default, rather than scaling. However, we
  153. realize that sometimes it may make sense to your part to scale content.
  154.  
  155. A container must provide frame resizing (that is, cropping) for embedded
  156. parts. Additionally, a few containers (such as page layout or drawing) may
  157. also allow the user to change the rotation, scaling, and so on of embedded
  158. parts. To do this, we suggest your editor provide a tool or a command to
  159. enter a scale, rotate, or enter another mode. If you provide this capability
  160. through direct manipulation, you should change the appearance of the resize
  161. handles (to hollow squares or diamond shapes, for example) to provide visual
  162. feedback indicating that the user has entered a mode. At this point, when
  163. the user moves one of the handles, your editor would change the size of the
  164. embedded frame and change the external transform as appropriate (scale,
  165. rotate, skew, and so forth).
  166.  
  167. Q: During one of the demos at the OpenDoc Human Interface session (#213) at
  168. the WWDC, when a PICT part was dropped into a drawing part, not all of the
  169. contents of the dropped PICT were visible--they were cropped. Why?
  170.  
  171. A: When a part is added, it should ask its container for enough space to
  172. display its content. The container part dictates how much space the embedded
  173. part may occupy. If it isn't given a frame large enough to display all of
  174. its content, the embedded part should decide whether to display its content
  175. in a cropped format or, alternatively, request an additional frame (for
  176. example, a new page inserted in the document) from the container part. If
  177. the container part does not provide an additional frame, then the embedded
  178. part must crop itself. Generally the cropped content should be attached at
  179. the upper-left corner of the frame and cropped on the right and bottom edges
  180. as required.
  181.  
  182. Q: In the demo just mentioned, each time the three PICTs were resized, they
  183. appeared to "re-center" themselves. Is this a feature or a bug? I think it's
  184. strange behavior.
  185.  
  186. A: Oops! You caught us--the parts we used in our demo didn't display the
  187. correct behavior. The image should remain constant, and the user should be
  188. able to change the size and shape of the frame. The image shouldn't
  189. re-center itself when the frame is resized. Without this standard behavior,
  190. whenever a frame was irregularly shaped and then resized by means other than
  191. a corner resize handle, it would be difficult for the user to predict the
  192. result.
  193.  
  194. Q: It's obvious that when an embedded part is cropped (not all the contents
  195. of the part are showing), the content that is visible is what gets printed.
  196. But suppose the part has scroll bars, like a list of addresses. What should
  197. be printed?
  198.  
  199. A: In general, scroll bars are tools and, like other tools, should not
  200. appear in the printed document. However, this is up to you, the developer,
  201. to decide. We recommend that if the user can see the scroll bars on the
  202. screen, you print them. Otherwise, what is printed is different from what is
  203. on the screen. To allow the user to choose how to print, you should provide
  204. a command to show or hide the scroll bars, or provide a part editor
  205. preference for this purpose. A side note: If you follow the WYSIWYG model,
  206. only the contents currently visible (not necessarily all the contents of the
  207. part) should be printed. For more detail, consult the OpenDoc Human
  208. Interface Guidelines.
  209.  
  210. Q: How should my part print?
  211.  
  212. A: There are several aspects of printing. First, to basics: The Page Setup
  213. and Print dialog boxes contain options from the root part of the active
  214. window that apply to the entire document. We generally favor WYSIWYG,
  215. although there are exceptions depending on the kind of part. For example,
  216. movie and sound parts don't print very well.
  217.  
  218. If your part displays some static content, and it doesn't have scroll bars,
  219. you should print what the user sees on the screen. If the content is
  220. dynamic--for example, the part displays database query results-- you should
  221. show the current value. Parts that have a preview or poster view, such as a
  222. movie, have the option of deciding to print that.
  223.  
  224. This brings up print options. Today's documents often have options for
  225. controlling printing. These may appear on a custom Print dialog box, or
  226. perhaps on a Page Setup dialog box, or sometimes on a Print Options dialog
  227. box. When your part is embedded, you should not display a dialog box at
  228. print time asking for options. You must follow the options of the document,
  229. or options previously set by the user. So how does the user set options on a
  230. part? This is done through Print Settings, which may be provided as a menu
  231. command. These should also be available in the Part Info dialog box by means
  232. of the Settings button. In addition, your editor may have printing
  233. preferences that apply to all parts that use your editor.
  234.  
  235. We will address more printing questions in future FAQs.
  236. __________________________________________________________
  237.  
  238. Copyright (c) 1995 by Apple Computer, Inc. All Rights Reserved.
  239.